#include<iostream>
#include<cmath>
#include<set>
using namespace std ;
int main()
{
int t ;
cin >> t ;
while (t--)
{
int a, b, l ;
cin >> a >> b >> l ;
set<int> ans ;
for( int x = 0 ; x < 20 ; x++)
{
for( int y = 0 ; y < 20 ; y++)
{
if(l % (int)(pow(a,x) * pow(b,y)) == 0 )
ans.insert(l / (int)(pow(a,x) * pow(b,y))) ;
}
}
cout << ans.size() << endl ;
}
}
12A - Super Agent | 1709A - Three Doors |
1680C - Binary String | 1684B - Z mod X = C |
1003A - Polycarp's Pockets | 1691B - Shoe Shuffling |
1706A - Another String Minimization Problem | 1695B - Circle Game |
1702B - Polycarp Writes a String from Memory | 1701A - Grass Field |
489C - Given Length and Sum of Digits | 886B - Vlad and Cafes |
915A - Garden | 356A - Knight Tournament |
1330A - Dreamoon and Ranking Collection | 1692B - All Distinct |
1156C - Match Points | 1675A - Food for Animals |
1328C - Ternary XOR | 1689A - Lex String |
1708B - Difference of GCDs | 863A - Quasi-palindrome |
1478A - Nezzar and Colorful Balls | 1581B - Diameter of Graph |
404A - Valera and X | 908A - New Year and Counting Cards |
146A - Lucky Ticket | 1594C - Make Them Equal |
1676A - Lucky | 1700B - Palindromic Numbers |